From 46f8c773de64761cbde22adb078a26b55e41db2e Mon Sep 17 00:00:00 2001 From: tsteven4 Date: Wed, 16 May 2018 00:50:22 +0000 Subject: [PATCH] add creation of appimage. --- .travis.yml | 66 +++++++++++++++++++++++++++++++++++++++--- gui/gpsbabelfe.desktop | 9 ++++++ gui/makeappimage.sh | 24 +++++++++++++++ 3 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 gui/gpsbabelfe.desktop create mode 100755 gui/makeappimage.sh diff --git a/.travis.yml b/.travis.yml index 037746651..694353d83 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,65 @@ sudo: required +dist: trusty services: docker -env: - - CC=gcc CXX=g++ - - CC=clang CXX=clang++ +language: cpp +addons: + apt: + sources: &add-sources + - sourceline: 'ppa:beineri/opt-qt595-trusty' + packages: &trusty-packages + - expat + - fop + - valgrind + - xsltproc + - libxml2-utils + - qt5-default + - qtbase5-dev + - libqt5webkit5-dev + - qttools5-dev-tools + - qttranslations5-l10n + - libusb-dev + - docbook-xml + - docbook-xsl +matrix: + include: + - compiler: gcc + env: + - USE_DOCKER=false + - QT_VERSION=59 + addons: + apt: + packages: + - *trusty-packages + - compiler: gcc + env: + - USE_DOCKER=true + addons: + apt: + sources: *add-sources + packages: &qt59-packages + - qt59base + - qt59webengine + - qt59translations + - qt59tools + - compiler: clang + env: + - USE_DOCKER=true + addons: + apt: + sources: *add-sources + packages: + - *qt59-packages + +before_install: + - if [ "${USE_DOCKER}" = "false" ]; then source "/opt/qt${QT_VERSION}/bin/qt${QT_VERSION}-env.sh"; fi + +install: + - if [ "${USE_DOCKER}" = "false" ]; then wget 'https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage'; fi + - if [ "${USE_DOCKER}" = "false" ]; then chmod +x linuxdeployqt-continuous-x86_64.AppImage; fi + - if [ "${USE_DOCKER}" = "false" ]; mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt; fi + script: - - ./docker_hook + - if [ "${USE_DOCKER}" = "true" ] ; then ./docker_hook; fi + - if [ "${USE_DOCKER}" = "false" ] ; then ./build_and_test; fi + - if [ "${USE_DOCKER}" = "false" ] ; then export VERSION=$(git rev-parse --short HEAD); fi # linuxdeployqt uses this for naming the file + - if [ "${USE_DOCKER}" = "false" ] ; then cd gui; QMAKE=/opt/qt${QT_VERSION}/bin/qmake LINUXDEPLOYQT=../linuxdeployqt ./makeappimage.sh; fi diff --git a/gui/gpsbabelfe.desktop b/gui/gpsbabelfe.desktop new file mode 100644 index 000000000..921917491 --- /dev/null +++ b/gui/gpsbabelfe.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=GPSBabelFE +Comment=Qt GUI interface for GPSBabel +GenericName=GPSBabel +Icon=gpsbabelfe +Exec=AppRun +Terminal=false +Categories=Utility; diff --git a/gui/makeappimage.sh b/gui/makeappimage.sh new file mode 100755 index 000000000..02e6f8793 --- /dev/null +++ b/gui/makeappimage.sh @@ -0,0 +1,24 @@ +#!/bin/sh +set -e -x +DISTDIR=dist +QMAKE=${QMAKE:-qmake} +LINUXDEPLOYQT=${LINUXDEPLOYQT:-linuxdeployqt} +rm -fr $DISTDIR +mkdir $DISTDIR +cp gpsbabelfe.desktop $DISTDIR +cp images/appicon.png $DISTDIR/gpsbabelfe.png +cp objects/gpsbabelfe-bin $DISTDIR/gpsbabelfe +if [ -x ../gpsbabel ]; then + cp ../gpsbabel $DISTDIR/gpsbabel +elif [ -x ../GPSBabel ]; then + cp ../GPSBabel $DISTDIR/gpsbabel +else + echo "Couldn't find command line executable gpsbabel or GPSBabel." >&2 + exit 1; +fi +cp COPYING.txt $DISTDIR +cp gmapbase.html $DISTDIR +mkdir $DISTDIR/translations +cp *.qm $DISTDIR/translations +# https://github.com/probonopd/linuxdeployqt +$LINUXDEPLOYQT $DISTDIR/gpsbabelfe -qmake=$QMAKE -appimage -verbose=2 -executable=$DISTDIR/gpsbabel -exclude-libs="libnss3.so,libnssutil3.so" 2>&1 | tee makeappimage.log -- 2.30.2